package com.anjiplus.template.gaea.business.util;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;
import java.util.List;
import java.util.Map;

public class JdbcTemplateUtil {
    /**
     * 动态创建数据源
     *
     * @param url      数据库地址
     * @param username 用户名
     * @param password 密码
     * @return 数据源
     */
    public static DataSource createDataSource(String driverClassName, String url, String username, String password) {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClassName); // 根据实际数据库类型设置驱动
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    /**
     * 使用动态数据源执行查询
     *
     * @param dataSource 数据源
     * @param sql        SQL语句
     * @return 查询结果
     */
    public static List<Map<String, Object>> executeQuery(DataSource dataSource, String sql) {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        return jdbcTemplate.queryForList(sql);
    }
}
